/**
 * Ant Design主题配置文件
 * 提供核心主题配置创建功能，完全使用官方CSS变量模式
 */
import { theme } from 'antd';
import type { ThemeConfig } from 'antd';

/**
 * 默认主题颜色
 */
export const DEFAULT_PRIMARY_COLOR = '#1890ff';

/**
 * 创建主题配置
 * 按照Ant Design官方推荐方式创建主题配置对象
 * 
 * @param colorPrimary 主题主色调
 * @param themeType 主题类型：light或dark
 * @param useCompact 是否使用紧凑模式
 * @returns 配置完成的主题对象
 */
export const createThemeConfig = (
  colorPrimary: string = DEFAULT_PRIMARY_COLOR,
  themeType: 'light' | 'dark' = 'light',
  useCompact: boolean = false
): ThemeConfig => {
  // 选择基础算法
  const baseAlgorithm = themeType === 'dark' 
    ? theme.darkAlgorithm 
    : theme.defaultAlgorithm;
    
  // 组合算法（如果启用紧凑模式）
  const algorithm = useCompact 
    ? [baseAlgorithm, theme.compactAlgorithm] 
    : baseAlgorithm;

  // 创建主题配置对象，启用CSS变量模式
  return {
    cssVar: {},
    token: {
      colorPrimary,
    },
    algorithm
  };
};

/**
 * 默认主题配置
 * 提供应用的默认主题设置
 */
export const DEFAULT_THEME_CONFIG = createThemeConfig();

/**
 * 暗色主题配置
 * 提供应用的默认暗色主题设置
 */
export const DARK_THEME_CONFIG = createThemeConfig(DEFAULT_PRIMARY_COLOR, 'dark');

/**
 * 紧凑模式主题配置
 * 提供应用的默认紧凑模式主题设置
 */
export const COMPACT_THEME_CONFIG = createThemeConfig(DEFAULT_PRIMARY_COLOR, 'light', true);

/**
 * 暗色紧凑模式主题配置
 * 提供应用的暗色紧凑模式主题设置
 */
export const DARK_COMPACT_THEME_CONFIG = createThemeConfig(DEFAULT_PRIMARY_COLOR, 'dark', true);